function GetId(id)
{
	return document.getElementById(id);
}
var i=false; // La variable i nous dit si la bulle est visible ou non

function move(e) {
	if(i)
	{  // Si la bulle est visible, on calcul en temps reel sa position ideale
    	if (navigator.appName!="Microsoft Internet Explorer")
    	{ // Si on est pas sous IE
    		GetId("curseur").style.left=e.pageX - 170+"px";
    		GetId("curseur").style.top=e.pageY + 10+"px";
    	}
    	else
    	{ // Modif proposé par TeDeum, merci à lui
    		if(document.documentElement.clientWidth>0)
    		{
        		GetId("curseur").style.left=20+event.x+document.documentElement.scrollLeft+"px";
        		GetId("curseur").style.top=10+event.y+document.documentElement.scrollTop+"px";
    		}
    		else
    		{
        		GetId("curseur").style.left=20+event.x+document.body.scrollLeft+"px";
        		GetId("curseur").style.top=10+event.y+document.body.scrollTop+"px";
    		}
    	}
  	}
}

function montre(text)
{
	if(i==false)
  	{
 		GetId("curseur").style.visibility="visible"; // Si il est cacher (la verif n'est qu'une securité) on le rend visible.
  		GetId("curseur").innerHTML = text; // Cette fonction est a améliorer, il parait qu'elle n'est pas valide (mais elle marche)
  		i=true;
  	}
}

function cache() 
{
	if(i==true) 
	{
		GetId("curseur").style.visibility="hidden"; // Si la bulle etais visible on la cache
		i=false;
	}
}

document.onmousemove=move; // des que la souris bouge, on appelle la fonction move pour mettre a jour la position de la bulle.

function appelPage(liste)
{
 	window.location.href =liste.options[liste.selectedIndex].value;
}

function VerifySpace(valeur)
{
 	if(valeur.indexOf(' ',0) != -1)
    {
        alert("Veuillez ne pas saisir d'espaces");
        return false;
    }
    else
    {
        return true;
    }
}

function VerifySpaceForm(valeur)
{
 	if(valeur.indexOf(' ',0) != -1)
    {
        return false;
    }
    else
    {
        return true;
    }
}

function VerifyAlphabetic(valeur)
{ 
	if (valeur.match(/^[a-zA-Z]+$/))
	{
		return true;
	}
	else
	{
		 alert("Veuillez ne pas saisir de chiffre");
		return false;
	}	
}

function VerifyAlphabeticForm(valeur)
{ 
	if (valeur.match(/^[a-zA-Z]+$/))
	{
		return true;
	}
	else
	{
		return false;
	}	
}

function VerifyLength(valeur,taille)
{ 
	var nombre = parseInt (taille) 
    if(valeur.length != nombre || !VerifySpace(valeur))
    { 
        alert("Veuillez saisir " + taille + " chiffres"); 
        return false; 
    }
    else
    { 
        return true; 
    } 
} 

function VerifyLengthForm(valeur,taille)
{ 
	var nombre = parseInt (taille) 
    if(valeur.length != nombre || !VerifySpace(valeur))
    { 
        return false; 
    }
    else
    { 
        return true; 
    } 
} 

function VerifyNumeric(valeur)
{ 
    for( var i=0; i< valeur.length; i++)
    { 
        if(isNaN(valeur))
        {
            alert("Veuillez saisir une valeur numerique"); 
            return false; 
        }  
    } 
    return true;
}

function VerifyNumericForm(valeur)
{ 
    for( var i=0; i< valeur.length; i++)
    { 
        if(isNaN(valeur))
        {
            return false; 
        }  
    } 
    return true;
}

function VerifyNumericPlage(valeur, min, max)
{ 
    for( var i=0; i< valeur.length; i++)
    { 
        if(isNaN(valeur))
        {
            alert("Veuillez saisir une valeur numerique"); 
            return false;
        }  
    } 
    
    var nombre = parseInt (valeur) 
    
    if ( (nombre < min) || (nombre > max) )
    { 
        alert(" Veuillez saisir un nombre entre " + min + " et " + max + " "); 
        return false;
    } 
    
    return true;
}

function VerifyNumericPlageForm(valeur, min, max)
{ 
    for( var i=0; i< valeur.length; i++)
    { 
        if(isNaN(valeur))
        {
            alert("Veuillez saisir une valeur numerique pour le mois de carte bleue"); 
            return false;
        }  
    } 
    
    var nombre = parseInt (valeur) 
    
    if ( (nombre < min) || (nombre > max) )
    { 
        alert(" Veuillez saisir un nombre entre " + min + " et " + max + " pour le mois de carte bleue"); 
        return false;
    } 
    
    return true;
}

function VerifyMail(valeur) 
{
  	if ((valeur.indexOf("@")>=0)&&(valeur.indexOf(".")>=0)) 
  	{
    	  return true 
   	}
   	else
   	{
   		alert("Mail invalide !");
      	return false
   	}
}

function VerifyDate(d) 
{
	// Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
	// Le séparateur est défini dans la variable separateur
	var amin=1960; // année mini
	var amax=2010; // année maxi
	var separateur="/"; // separateur entre annee/mois/jour
	var a=(d.substring(0,4));
	var m=(d.substring(5,7));
	var j=(d.substring(8));
	var ok=1;
	if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) 
	{
   		alert("L'annee n'est pas correcte."); ok=0;
	}
	if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) 
	{
   		alert("Le mois n'est pas correct."); ok=0;
	}
	if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) 
	{
   		alert("Le jour n'est pas correct."); ok=0;
	}
	if ( ((d.substring(4,5)!=separateur)||(d.substring(7,8)!=separateur)) && (ok==1) ) 
	{
   		alert("Les separateurs de date doivent être des "+separateur); ok=0;
	}
	if (ok==1) 
	{
   		var d2=new Date(a,m-1,j);
   		j2=d2.getDate();
  	 	m2=d2.getMonth()+1;
   		a2=d2.getFullYear();
   		if (a2<=100) 
   		{
   			a2=1900+a2
   		}
   		if ( (j!=j2)||(m!=m2)||(a!=a2) ) 
   		{
    		alert("La date "+d+" n'existe pas !");
      		ok=0;
   		}
	}
	return ok;
}

function Validation(formulaire)
{
	var ok=1;
	
	// Traiter le login
	//
	if (ok==1)
    {
  		if(formulaire.codelog.value == "") 
  		{
 			alert("Veuillez saisir un login");
 			ok=0;
  		}
    }
    // Traiter le mot de passe
    // 
    if (ok==1)
    {
  		if(formulaire.passe.value == "") 
  		{
 			alert("Veuillez saisir un mot de passe");
 			ok=0;
  		}
    }
    // Traiter le mail
    //
	if (ok==1)
    {
    	if(formulaire.mailh.value == "") 
  		{
 			alert("Veuillez saisir un mail");
 			ok=0;
  		}
    }
    if (ok==1)
    {
       	if(!VerifyMail(formulaire.mailh.value))
      	{
       		ok=0;
      	}
    }
    if (ok==1)
    {
      	if(!VerifySpaceForm(formulaire.mailh.value))
      	{
      		alert("Veuillez ne pas mettre d'espace dans le mail");
      		ok=0;	
      	}
    }
    // Traiter le nom
    //
    if (ok==1)
    {
    	if(formulaire.nom.value == "") 
  		{
 			alert("Veuillez saisir votre nom");
 			ok=0;
  		}
    }
    if (ok==1)
    {
       	if(!VerifyAlphabeticForm(formulaire.nom.value))
      	{
      		alert("Veuillez ne pas saisir de chiffre dans votre nom");
       		ok=0;
      	}
    }
    // Traiter le prenom
    //
    if (ok==1)
    {
    	if(formulaire.prenom.value == "") 
  		{
 			alert("Veuillez saisir votre prenom");
 			ok=0;
  		}
    }
    if (ok==1)
    {
       	if(!VerifyAlphabeticForm(formulaire.prenom.value))
      	{
			alert("Veuillez ne pas saisir de chiffre dans votre prenom");
       		ok=0;
      	}
    }
    // Traiter la date de naissance
    //
    if (ok==1)
    {
    	if(formulaire.datenais.value == "") 
  		{
 			alert("Veuillez saisir votre date de naissance");
 			ok=0;
  		}
    }
    if (ok==1)
    {
       	if(!VerifyDate(formulaire.datenais.value))
      	{
       		ok=0;
      	}
    }
    // Traiter le numero de carte bleue
    //
    if (ok==1)
    {
    	if(formulaire.nocb.value == "") 
  		{
 			alert("Veuillez saisir votre numero de carte bleue");
 			ok=0;
  		}
    }
    if (ok==1)
    {
       	if(!VerifyLengthForm(formulaire.nocb.value,16))
      	{
      		alert("Veuillez saisir les 16 chiffres de votre carte bleue"); 
       		ok=0;
      	}
    }
    if (ok==1)
    {
      	if(!VerifySpaceForm(formulaire.nocb.value))
      	{
      		alert("Veuillez ne pas mettre d'espace dans le numero de votre carte bleue");
      		ok=0;	
      	}
    }
    // Traiter l'année de carte bleue
    //
    if (ok==1)
    {
    	if(formulaire.nocb.value == "") 
  		{
 			alert("Veuillez saisir l'ann\351e de votre carte bleue");
 			ok=0;
  		}
    }
    if (ok==1)
    {
       	if(!VerifyNumericForm(formulaire.anfin.value))
      	{
      		alert("Veuillez saisir des chiffres pour l'ann\351e de votre carte bleue"); 
       		ok=0;
      	}
    }
    if (ok==1)
    {
      	if(!VerifyLengthForm(formulaire.anfin.value,2))
      	{
      		alert("Veuillez saisir les 2 chiffres de l'ann\351e de votre carte bleue"); 
       		ok=0;
      	}
    }
    if (ok==1)
    {
      	if(!VerifySpaceForm(formulaire.anfin.value))
      	{
      		alert("Veuillez ne pas mettre d'espace dans l'ann\351e de votre carte bleue");
      		ok=0;	
      	}
    }
    // Traiter le mois de carte bleue
    //
    if (ok==1)
    {
    	if(formulaire.moisfin.value == "") 
  		{
 			alert("Veuillez saisir le mois de votre carte bleue");
 			ok=0;
  		}
    }
    if (ok==1)
    {
       	if(!VerifyNumericPlageForm(formulaire.moisfin.value,1,12))
      	{
       		ok=0;
      	}
    }
    if (ok==1)
    {
      	if(!VerifyLengthForm(formulaire.moisfin.value,2))
      	{
      		alert("Veuillez saisir les 2 chiffres du mois de votre carte bleue"); 
       		ok=0;
      	}
    }
    if (ok==1)
    {
      	if(!VerifySpaceForm(formulaire.moisfin.value))
      	{
      		alert("Veuillez ne pas mettre d'espace dans le mois de votre carte bleue");
      		ok=0;
      	}
    }
    // Traiter la reponse
    //
    if (ok==1)
    {
        alert("formulaire envoy\351");
    	return true;
    }
    else
    {
        alert("Votre formulaire n'a pas \351t\351 envoy\351");
    	return false;
    }
}
